Python3爬取人人网(校内网)个人照片及朋友照片,并一键下载到本地~~~附源代码 | 您所在的位置:网站首页 › 手机人人网 找人 › Python3爬取人人网(校内网)个人照片及朋友照片,并一键下载到本地~~~附源代码 |
题记:
11月14日早晨8点,人人网发布公告,宣布人人公司将人人网社交平台业务相关资产以2000万美元的现金加4000万美元的股票对价出售予北京多牛传媒,自此,人人公司将专注于境内的二手车业务和在美国的投资业务。 人人网CEO陈一舟说:“很高兴为人人网找到一个新的归宿和起点。” 然而对于人人网曾经近2亿的注册用户来说,哪有什么新的开始,故事已经到了尽头。 彼时,他们还是刚刚逃离高考噩梦的青涩大学生,抓住人人网这个宣泄口乐此不疲地表达着自我;现在,他们苦思冥想记忆中的账号密码,费力登上网站,发布最后一条状态:再见,人人。 还有更多的人登陆了人人网的手机客户端,结果发现连发布状态的按钮都找不到,一个明晃晃的“我要开播”,和首页上让人眼花缭乱的美女短视频,显示出在移动互联网时代,人人网早已从一个社交App,转型为短视频和直播应用。 他们只能压抑住心中的不舍,卸载了这个承载青春记忆的网站,转而去微博上说出那句告别的话语,和千千万的人一起来缅怀过往,“人人网被卖了”迅速站上热搜榜第一。
曾经活跃在人人上的那些青年们,如今都走入社会结婚生子,他们中的许多人,正是在人人上认识了自己的人生伴侣;而新的大学年轻人被琳琅满目的App牵着走,睁眼微信,早饭抖音,上课豆瓣,下课B站,午饭微博,晚饭头条,一个个分散在各自的小圈子里,十年前全国的青年汇聚在校内网上谈论星辰大海的场景,终究会消逝在一代人的记忆当中。
此次案例: Python3爬取人人网(校内网)个人照片及朋友照片,并一键下载到本地
逆向思维来 以自己的人人网主页为例http://www.renren.com/23231****/profile,其中23231****是人人网给每个人分配的id号(用****隐去了后面四位) 因为需要使用账户名和密码,本程序使用了cookie登陆(每天需要更换cookie)
第一步:下载某个相册内的所有照片到本地 打开自己的某个相册,我的以http://photo.renren.com/photo/23231****/album-252396640/v7,为例。多开几个相册观察相册的连接可以发现,album-后面的字符串代表了相册的id 人人网存储了两种大小的照片,一种是缩略图,一种是点开某个照片显示的原图(当然不可能跟你拍的原图是一样大小的,为节省空间,上传的过程中系统会进行同比例的压缩处理),我们这个脚本下载较大尺寸的照片 按F12打开开发者工具,找到某个照片的连接,分别copy到浏览器看一下哪个是大尺寸的照片连接,可以看到标红的即为我们需要的 那么接下来就是使用python赶紧着把这些url获取到吧 but! xpath爬出来是空,why?查询源代码后发现上一段代码是写在标签内的 那么就用正则匹配试了下是ok哒 but! 抓取出来的url数量比相册内的照片数量少啊,看了几个相册发现,源代码中的url最多有40个,如果你的相册中照片数量大于40就会不全,心塞! 爬虫写的多了,到这里就知道应该去哪里找了,当然是动态加载文件啊 开发者工具切换到network页签选择XHR,然后刷新一下网页并滑动到相册最下面,可以看到左下侧出现了很多,点击红色框线内的随意一个文件,在右侧选中Headers看RequestURL
把这段字符串粘贴到浏览器中,发现显示是json数据
经测试可知,去掉&requestToken=-1989347373&_rtk=552df62d也可,并且前面的pageSize可以更改大小(最大是100) 遍历输出的时候需要注意:相册内数量、pageSize和page三者是有关联的 那么问题来了,我还需要获取到相册数量这个参数! 1 def download_photo(each_album_link,album_photoNumber,album_name,album_id,person): 2 """ 3 按照相册下载内部所有照片到同名文件夹 4 :param each_album_link: 各个相册链接 5 :param album_photoNumber: 每个相册内的照片数量 6 :param album_name: 相册名称,用来创建同名的文件夹 7 :param album_id:相册id,用来创建同名文件夹 8 :param person: 所属人名字,用来创建一级文件夹名称 9 :return: none 10 """ 11 n = 0 12 while n |
CopyRight 2018-2019 实验室设备网 版权所有 |